<?php

namespace JsonLowCode\UI;

use JsonLowCode\Schema;
use JsonLowCode\Traits\Props\HasType;

/**
 * 文字渐变组件 GradientText
 * @method static GradientText make(string $type = 'primary') GradientText组件
 */
class GradientText extends Schema
{

    protected string $componentName = "NGradientText";

    use HasType;

    public function __construct(string $type = 'primary')
    {
        parent::__construct();
        $this->type($type);
    }

    /**
     * 渐变文字的类型
     * @param string $type 'primary' | 'info' | 'success' | 'warning' | 'error'
     * @return $this
     */
    public function type(string $type = 'primary' | 'info' | 'success' | 'warning' | 'error'): static
    {
        return $this->prop('type', $type);
    }

    /**
     * 文字大小（当不指定单位时，默认单位: px）
     * @param string|int $size
     * @return $this
     */
    public function size(string|int $size): static
    {
        return $this->prop('size', $size);
    }

    /**
     * 文字渐变色参数
     * @param string|array $gradient  string | ["from"=>"", to=>"", deg=>"" ]
     * @return $this
     */
    public function gradient(string|array $gradient): static
    {
        return $this->prop('gradient', $gradient);
    }

}
